package org.dlsu.mt.parser;

/**
 * The Symbol interface is used as a way for the Node and Word class
 * be able to interact properly.
 */

public interface Symbol
{
	/**
	 * Returns the a clone or a copy of the word. All the objects
	 * in the object must be copied not merely referenced.
	 *
	 * @return the clone of this object
	 */
	public Object clone();

	/**
	 * Returns the XML representation of the implementing class.
	 * This method will be used recursively by other displayXML()
	 * methods.
	 *
	 * @return the string showing the XML representation
	 */
	public String displayXML();

	/**
	 * Returns the interpretation or semantic of the given symbol
	 */
	public Object interpret() throws Exception;
}